/**
 * 
 */
package pruebas.VerduleriaOl.riuCliente;

import javax.faces.event.PhaseEvent;
import javax.faces.event.PhaseId;
import javax.faces.event.PhaseListener;

import com.intelap.fabricaciones.ConocedorUnidadTrabajoActual;
import com.intelap.fabricaciones.UnidadTrabajo;

/** @author ggpollit
 *         NOTA: No esta siendo usando por ahora */
public class AsignadorUnidadTrabajo implements PhaseListener {

	@Override
	public PhaseId getPhaseId() {
		return PhaseId.ANY_PHASE;
	}

	private PhaseId ultimaFace;
	@Override
	public void beforePhase(PhaseEvent event) {
		// si esta es la primera vez que esta operacion es llamada en todo el ciclo JSF
		if( ultimaFace == null || event.getPhaseId().compareTo(ultimaFace) <= 0) {
			UnidadTrabajo uta = event.getFacesContext().getApplication()
					.evaluateExpressionGet(event.getFacesContext(), "#{unidadTrabajo}", UnidadTrabajo.class);
			// TODO usar Solder http://docs.jboss.org/seam/3/3.1.0.Final/reference/en-US/html/pt01.
			//UnidadTrabajo ut = ProductorRecursos.getManagedBeanEstricto(getBeanManager(), this, UnidadTrabajo.class);
			ConocedorUnidadTrabajoActual.setActual(uta);
		}
		ultimaFace = event.getPhaseId();
	}
	@Override
	public void afterPhase(PhaseEvent event) {}

//	private BeanManager getBeanManager() {
//		return (BeanManager) ((ServletContext) FacesContext.getCurrentInstance().getExternalContext().getContext())
//				.getAttribute("javax.enterprise.inject.spi.BeanManager");
//	}

}
